--- id: TASK-029 title: Mouse-wheel scroll sequences leak into buffer as text status: "\U0001F3C1 Done" assignee: [] created_date: '2026-06-30 04:05' updated_date: '2026-06-30 04:08' labels: - bug dependencies: [] priority: high ordinal: 29000 --- ## Description Fast wheel-scrolling (esp. near the top of a doc, Ghostty) inserts literal SGR mouse escape residue into the buffer, e.g. '<64;68;26M<64;68;26M...'. Cause: Bubble Tea's input parser splits a burst of SGR mouse sequences across read boundaries and emits the leftover as a KeyRunes text event, which the editor inserts. Mouse is enabled (WithMouseCellMotion) and wheel events ARE handled; this is parser leakage, not missing handling. bubbletea v1.3.10 is already latest. Fix: drop KeyRunes events that are entirely a leaked mouse sequence at the input boundary. ## Acceptance Criteria - [x] #1 A KeyRunes event whose content is entirely SGR mouse residue is ignored, never inserted - [x] #2 Normal typing (including a lone '<' or text containing '<' / ';') is unaffected ## Implementation Notes Added looksLikeMouseLeak (mouseleak.go): regexp ^(